블록체인과 암호화 해시 함수
1️⃣ 블록체인의 목적
- 블록체인의 핵심 목적은 여러 컴퓨터가 하나의 공통된 데이터 상태에 동의(합의) 하도록 만드는 것
- 누구든지 참여할 수 있어야 하고, 특정 개인이나 조직이 통제할 수 없어야 함
- 이러한 과정을 **"Consensus" (합의 메커니즘)**이라 부르며, 블록체인 기술의 중심 개념
2️⃣ 암호화폐와 블록체인
🔹 왜 디지털 화폐에 블록체인이 필요한가?
단순한 디지털 화폐 시스템에서는 중앙 관리자에 대한 신뢰가 필요하다
이름 잔액(원)
철수 1000
영희 1000
진수 1000
✔️ 철수가 영희에게 500원을 보냄 → 수기로 수정
철수 500
영희 1500
진수 1000
❗ 문제점
- 중앙 관리자(장부 관리자)가 조작할 수 있음
- 사용자들은 항상 최신 상태의 데이터를 볼 수 있어야 함
- 사용자가 많아 지면 관리가 복잡해짐
✔️ 1. 의 문제인 신뢰를 해결하기 위해 나온 기술이 바로 블록체인
✔️ 탈중앙화 네트워크 + 암호학 + 경제적 인센티브를 결합한 시스템
3️⃣ Smart Contract 블록체인
- 스마트 컨트랙트는 코드가 탈중앙화된 환경에서 자동 실행될 수 있도록 함
- 코드는 누구나 볼 수 있고, 직접 소유자가 없도록 검역 불가능하고 투명하게 동작함
- 핵심은 코드의 실행 방식이 블록체인 상에서 일어난다는 것
🧐 예시: Solidity
mapping(address => uint) balances;
function transfer(address to, uint amount) external {
balances[msg.sender] -= amount;
balances[to] += amount;
}
✔️ 이 코드 자체는 평범하지만, 블록체인에 배포하면 모든 노드가 이 로직을 강제 실행
✔️ 즉, 이 코드는 항상 정해진 방식대로 동작하게 되어 신뢰할 수 있는 시스템이 됨
4️⃣ Cryptographic Hash Function (암호화 해시 함수)
🔹 해시 함수란?
- 임의의 입력 → 고정된 크기의 출력값으로 변환하는 함수
- 예: SHA256 → 32바이트 출력
| Input | Output (SHA256 예시) |
|---|---|
100 | 0x1a4c... |
"open sesame" | 0x4b7e... |
image.png | 0x8f2c... |
🔹 암호화 해시 함수가 갖춰야 할 5가지 특성
- Deterministic - 항상 같은 입력 → 같은 출력
- Pseudorandom - 유사한 입력도 완전히 다른 출력
- One-way - 출력으로는 입력을 유추 불가능
- Fast to Compute - 컴퓨터가 빠르게 계산 가능
- Collision-resistant - 서로 다른 입력이 같은 출력이 될 가능성 거의 없음
✔️ 블록체인에서는 데이터를 저장하거나 검증할 때 해시값만 저장함으로써 공간 절약 및 무결성 확보 가능